#include <iostream>
#include <cctype>
#include <vector>
#include <string>
#include <bitset>
#include <cassert>
#include <istream>
#include <fstream>
#include "Sales_item.h"
#include "bunnyTest.h"
using namespace std;
std::string global_str; 
int global_int; 
typedef bool (*cmpFcn)(const string &,const string &);
void printValue(const int *beg,const int *end){

	while (beg!=end)
	{
		cout<<*beg++<<endl;
	}
}
/******

*****/
void printValus(const int ia[],size_t size){

	for (size_t i=0;i<size;i++)
	{
		cout<<ia[i]<<endl;
	}
}

string screenInit(string::size_type height=24,string::size_type width=80,char backgroung=' '){
	return  string("sdfsdf");
};
size_t count_calls(){

	static size_t ctr=0;
	return ++ctr;
}
int ff(int =0);

//double Sales_item::avg_price()const
//{
//
//	if (units_sold)
//	{
//		return revenue/units_sold;
//	}
//	else
//	{
//		return 0;
//	}
//
//}


istream & readContent( istream & is ) 
{ 
	//int ival;  
	string ival; 

	while ( is >> ival, !is.eof())
	{    
		if(is.bad())      // input stream is corrupted; bail out, 流¢¡Â是º?否¤?已°?被À?破?坏¦Ì

			throw runtime_error("IO stream corrupted"); 
		if ( is.fail() )          // bad input  
		{ 
			cerr << " bad data, try again."; 
			is.clear( );          // reset the stream 
			is.setstate(istream::eofbit);      
			continue; 
		}  
		// process input 
		cout << ival << endl; 
	}  
	is.clear(); 
	return is; 
} 
int main11(){
	testFileMode();

	return 0;
}
int main2() 
{ 
	string s; 
	string fName; 
	cout << " Input name of file( ctrl + z to end ):\n";  
	//cin >> fName; 
	//ifstream readfile; 
	ifstream readfile("D:\\win8.txt");
	//readfile.open(fName.c_str()); // open the file 
	if (!readfile) 
	{ 
		cerr << " error: cannot open the input file:" << fName << endl; 
		return -1; 
	}  
//	readContent(readfile); 
	vector<string> fileWord; 
	//getline(readfile,s)
	// input >> s
	while ( getline(readfile,s)  ) 
	{ 
		fileWord.push_back(s);   
		//input.clear(); 
	} 
	// 输出出来 
	vector<string>::const_iterator it = fileWord.begin(); 
	while ( it != fileWord.end() ) 
	{ 
		cout << *it << endl;    
		++it;   // 获取下一个文件
	} 





	system("pause"); 
	return 0; 
} 

int main1(){
	/*cin.tie(&cout);
	ostream *old_tie=cin.tie;
	cin.tie(0);
	cin.tie(&cerr);
	cin.tie(0);
	cin.tie(old_tie);*/
//	cout<<unitbuf<<"first "<<" second"<<nounitbuf;
	
	//cout<<"hi!"<<flush;
	//cout<<"hi"<<ends;

	//istream::iostate old_state=cin.rdstate();
	//cin.clear();
	//process_input();
	//cin.clear(old_state);

	/*int ival;
	while (cin>>ival,!cin.eof())
	{


	if (cin.bad())
	{
	throw runtime_error("IO stream corrupted");
	}
	if (cin.fail())
	{
	cerr<<"bad data ,try again";
	cin.clear(istream::goodbit);
	cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
	continue;
	}
	cout<<ival<<endl;
	}
	*/









//
//	string testa=screenInit(2,4,'c');
//
//	for (size_t i=0;i<10;i++)
//	{
//		cout<<count_calls();
//	}
//
//	int v1=**argv;
//	int v2=**argv++;
//	cout<<v2+v1;
//int j[2]={0,1};
//printValue(j,j+2);
//printValus(j,sizeof(j)/sizeof(*j));
#define  NDEBUG

#ifndef NDEBUG
	try{
		bitset<64> bit(232400000000);
		if (bit.to_ulong()>232400000L)
		{
			throw overflow_error("overflow_error");
		}
		//assert(false);

	}catch(overflow_error eerr){
		cout<<__FILE__<<__LINE__<<__TIMESTAMP__;
		cout<<eerr.what();
	}

#endif // !NDEBUG



	

	/*double dval;
	int ival;
	ival*=static_cast<int>(dval);*/




	//string s("expression is c++ are composed...");
	//string::iterator it=s.begin();
	//while (it!=s.end()&&!isspace(*it))
	//{
	//	*it=toupper(*it);
	//	++it;

	//}
	//cout<<s;


//	string str("sfsfsdfsef");
//	const char * str2=str.c_str();
//	 size_t n=6;
//	 int *p=new int[n];
//	 delete[]p;
//
//	char ca[]={'c','+','+',NULL};
//	cout<<strlen(ca)<<endl;
//	//strncpy() 可以精确复制个数
//
//const char * cp1="a string example";
//const char *cp2="a different string";
//int i=strcmp(cp1,cp2);
//i=strcmp(cp2,cp1);
//	i=strcmp(cp1,cp1);
//	cout<<i;
//	/*code for page 114*/
//	const char *cp="some value";
//	
//	while (*cp)
//	{
//		cout<<*cp<<endl;
//		cp++;
//	}
//	return 0;
//
//
//	string word;
//	vector<string> text;
//	while (cin>>word)
//	{
//text.push_back(word);
//	}
//
//	string s("Hello World!!!");
//	string::size_type punct_cnt=0;
//	for (string::size_type index=0;index!=s.size();++index)
//	{
//		if (ispunct(s[index]))
//		{
//			++punct_cnt;
//		}
//	}
//	cout<<punct_cnt<<"  punctuation characters in "<<s<<endl;
//
//	for (string::size_type index=0;index!=s.size();++index)
//	{
//		s[index]=tolower(s[index]);
//	}
//	cout<<s<<endl;
//	string test;
//	cout<<test[0];
//
	//int local_int; 
	//std::string local_str; 
	//cout<<local_int<<local_str<<" "<<global_int<<global_str;
	//int a,b;
	//cin>>a>>b;
	//int value=1;
	//for (int i=0;i<b;i++)
	//{
	//	value=value*a;
	//}
	//cout<<value;
	//

	//char* md5Buffer="dbc69fb312010186";
	//int count=strcmp(md5Buffer, "f64ea32a4b85bb75");//=0 相等
	//if (!(strcmp(md5Buffer, "f64ea32a4b85bb75") == 0 || strcmp(md5Buffer, "dbc69fb312010186") == 0))
	//{

	//	cout<<"error";

	//}else
	//{
	//	cout<<"ok";
	//}
	//Sales_item tatal,trans;
	//while (cin>>trans)
	//{
	//	if (tatal.same_isbn(trans))
	//	{
	//		tatal=tatal+trans;
	//	}else
	//	{
	//		cout<<tatal<<endl;
	//		tatal=trans;
	//	}
	//	return -1;

	//}

	return 0;
}